1 -*-text-*---------------------------------------------------------------
2 supercollider 3 for linux
3 ------------------------------------------------------------------------
5 ------------------------------------------------------------------------
7 ------------------------------------------------------------------------
9 ------------------------------------------------------------------------
11 this is a port of james mccartney's supercollider synthesis engine
12 (scsynth) and programming language (sclang) to linux. supercollider's
13 main homepage is at and the source code can be obtained via SVN from
15 http://supercollider.sourceforge.net
17 It all started at this homepage:
19 http://www.audiosynth.com
21 to get further information on supercollider usage or development, you
22 might consider subscribing to the mailing lists
24 http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
26 ------------------------------------------------------------------------
28 (most of these will be available in your linux distribution as packages )
29 ------------------------------------------------------------------------
33 http://www.gnu.org/software/gcc/
35 gcc versions < 3.0 are missing some required c++ features
39 http://jackit.sourceforge.net/
41 jack audio connection kit
45 http://www.mega-nerd.com/libsndfile/
47 _the_ soundfile i/o library
49 * pkg-config >= 0.14.0
51 http://www.freedesktop.org/software/pkgconfig/
53 facilitates checking for installed packages when compiling from
60 configuration and build tool based on python
66 fast FFT transform library (for frequency-domain analysis,
67 phase-vocoder effects)
69 ------------------------------------------------------------------------
70 build requirements (optional features)
71 (most of these will be available in your linux distribution as packages )
72 ------------------------------------------------------------------------
76 http://www.alsa-project.org/
78 advanced linux sound architecture drivers and library, for sclang's
83 http://www.porchdogsoft.com/products/howl/
85 zeroconf service dicovery implementation
91 a more powerful zeroconf service discovery implementation
95 http://www.kernel.org/
97 for sclang's linux input device (LID) interface
99 o for scel: the Emacs interface see the README in the directory
102 o for sced: the gedit interface see the README in the directory
105 o for scvim: the vim interface see the README in the directory
109 ------------------------------------------------------------------------
110 build requirements (debian users)
111 ------------------------------------------------------------------------
113 on debian (unstable) you can install the following packages and be set
114 for building supercollider:
124 ------------------------------------------------------------------------
126 ------------------------------------------------------------------------
128 building with scons is not really different from building with
129 autoconf, automake and related tools.
133 gives an overview of scons options.
137 lists package specific options variables and their default values.
138 (Note: some options allow to disable the dependencies on fftw and on
139 libsndfile, but those dependencies should be considered compulsory for
140 most standard setups since they provide much core sc functionality.)
142 options can be set on the command line
144 $ scons VARIABLE=VALUE
146 and are cached in a file called scache.conf (which can be edited with
147 your favorite editor) for use in the next scons invocation.
149 in order to build the whole package, call scons without arguments
150 (apart from option variables). in order to install the package, call
151 scons with the `install' target:
155 any target (including `install') can be cleaned with the `-c' option
156 to scons; note that cleaning the `install' target also removes locally
159 The option SCEL installs the emacs editor. For the sced and scvim editors,
160 please use the scons scripts in their respective directories (in editors/).
162 Note that the language will only build 32bit. To compile the language as
163 32bit binary on a 64bit installation, a multilib compiler and 32bit
164 libraries are required (on debian systems, the packages are gcc-multilib
165 g++-multilib, ia32-libs, libc6-dev-i386 and lib32asound2-dev).
168 ------------------------------------------------------------------------
169 Building a Debian package
170 ------------------------------------------------------------------------
172 In our SVN we have debian packaging rules. These were designed on Ubuntu
173 but we believe they should work on most common debian systems - please
174 let us know if you have any issues with this way of building:
176 cd SuperCollider3 # (or wherever your SC source is)
177 svn co https://supercollider.svn.sourceforge.net/svnroot/supercollider/packages/ubuntu/ debian
180 Eventually, some .deb packages will be put in the parent folder, and can
181 then be installed just like any other Debian package. For example:
183 dpkg -i ../supercollider*.deb
185 (Note: the packages supercollider-scel*.deb, supercollider-scvim*.deb,
186 supercollider-sced*.deb, represent the different editor integrations:
187 emacs, vim, gedit. You might not want to install all of those, but
188 choose your preferred editor.)
191 ------------------------------------------------------------------------
192 running scsynth (standalone)
193 ------------------------------------------------------------------------
195 run scsynth without options to get an option summary. don't forget to
196 start jackd before trying to use scsynth. if you want to add
197 directories to supercollider's search path or assign default jack
198 ports, set up your environment as described below.
200 you can specify the number of jack input/output channels created with
201 the options -i and -o, respectively.
203 the -H option can be used to specify a jack server to connect to and
204 to set the jack client identifier. the format is either
206 <SERVER-NAME>:<CLIENT-NAME>
212 when connecting to the default server.
214 ------------------------------------------------------------------------
216 ------------------------------------------------------------------------
218 it is recommended to use sclang in combination with the SCEL emacs
219 interface in `scel'. see the README in `linux/scel' for installation
222 sclang executes the startup file `~/.sclang.sc' after class library
223 initialization. this file can contain statements you don't want to put
224 in a custom Main class, like setting default variables. an example can
225 be found in `linux/examples/sclang.sc'.
227 you _have_ to have a directory `~/share/SuperCollider/'. This is where
228 automatically a synthdefs directory is created. It is also the place
229 to put Extensions to the class library, in a folder called Extensions.
231 the runtime directory is either the current working directory or the
232 path specified with the `-d' option.
234 for advanced setups, sclang's compilation search path can be
235 customized with a library configuration file. an example is provided
236 in `linux/examples/sclang.cfg'; install it as `/etc/sclang.cfg' or
237 `~/.sclang.cfg'. This config file is only needed when you want to
238 _exclude_ directories from the class library. Otherwise (so in most cases)
241 ------------------------------------------------------------------------
243 ------------------------------------------------------------------------
245 the jack audio driver interface is configured based on various
246 environment variables:
248 * SC_JACK_DEFAULT_INPUTS comma separated list of jack ports that
249 scsynth's inputs should connect to by default
251 $ export SC_JACK_DEFAULT_INPUTS="system:capture_1,system:capture_2"
253 in order to connect the first ports of one jack client, it is possible
254 to specify only the client name
256 $ export SC_JACK_DEFAULT_INPUTS="system"
258 * SC_JACK_DEFAULT_OUTPUTS comma separated list of jack ports that
259 scsynth's outputs should be connected to by default.
261 $ export SC_JACK_DEFAULT_OUTPUTS="system:playback_1,system:playback_2"
263 in order to connect the first ports of one jack client, it is possible
264 to specify only the client name
266 $ export SC_JACK_DEFAULT_OUTPUTS="system"
268 two additional environment variables substitute directories for the default
269 search path for plugins and synth definitions, respectively. directory
270 names are separated by ':' as in the unix PATH variable:
272 * SC_PLUGIN_PATH, SC_SYNTHDEF_PATH
274 $ export SC_SYNTHDEF_PATH="./synthdefs:/home/sk/SuperCollider/synthdefs"
276 ------------------------------------------------------------------------
278 ------------------------------------------------------------------------
280 apart from the sites listed above, some more documentation links ...
282 a wiki for supercollider, set up by julian rohrhuber, is at
284 http://swiki.hfbk-hamburg.de:8888/MusicTechnology/6
286 linux specific information can be found at
288 http://swiki.hfbk-hamburg.de:8888/MusicTechnology/478
290 if and when i get around to update the site, you'll find some more at
292 http://v00d00.k-hornz.de/sc.html
294 ------------------------------------------------------------------------
296 ------------------------------------------------------------------------
298 please report bugs either to the sc-users or sc-dev mailing lists.
300 ------------------------------------------------------------------------
302 ------------------------------------------------------------------------
304 stefan kersten <sk AT k-hornz DOT de>
306 maurizio umberto puxeddu
310 nescivi (marije baalman)
312 ------------------------------------------------------------------------
314 ------------------------------------------------------------------------
316 thanks to james mccartney, for making this great piece of audio
317 software publically and freely available.
319 ------------------------------------------------------------------------
321 ------------------------------------------------------------------------